package open.intellijboy.framework.core.exception;


import open.intellijboy.framework.core.response.StatusCode;

/**
 * 数据校验异常类 - 处理参数校验失败异常
 *
 * @author System
 * @version 1.0.0
 * @since 2024-01-01
 */
public class ValidationException extends BaseException {

    public ValidationException(StatusCode exceptionEnum) {
        super(exceptionEnum);
    }

    /**
     * 构造函数
     *
     * @param errorCode    错误码
     * @param errorMessage 错误消息
     */
    public ValidationException(String errorCode, String errorMessage) {
        super(errorCode, errorMessage);
    }

    /**
     * 构造函数
     *
     * @param errorCode    错误码
     * @param errorMessage 错误消息
     * @param cause        原因异常
     */
    public ValidationException(String errorCode, String errorMessage, Throwable cause) {
        super(errorCode, errorMessage, cause);
    }

    /**
     * 创建校验异常
     *
     * @param errorMessage 错误消息
     * @return ValidationException
     */
    public static ValidationException of(String errorMessage) {
        return new ValidationException(StatusCode.USER_ERROR_0001.getCode(), errorMessage);
    }

    /**
     * 创建校验异常
     *
     * @param errorCode    错误码
     * @param errorMessage 错误消息
     * @return ValidationException
     */
    public static ValidationException of(String errorCode, String errorMessage) {
        return new ValidationException(errorCode, errorMessage);
    }
}

